In CDMA and other multiple access communication systems, one function of a receiver is to separate single user signals from multi-user signals. In order to separate a single user signal from the multi-user signal, the single user signal may be despread using a spreading code for the user and the inverse of the spreading algorithm used by the transmitter, i.e. a despreading algorithm. After despreading, the despread single user signal may include bit errors caused, for example, by multiple access interference and channel noise. To remove these errors, the signal is typically passed into a single user decoder, such as a turbo decoder or a Viterbi decoder. The output of the single user decoder is the single user signal with all or some bit errors corrected.
Part of the single user decoding process involves the calculation of decoder log likelihood ratios (LLRs). Conventional LLRs are computed based on assuming that the multiple-access interference (MAI) plus noise is Gaussian. Improved LLRs (ILLRs) that model the MAI as conditionally Gaussian, given the cross-correlations, are described in U.S. Pat. Nos. 7,035,317 and 8,094,699, the disclosures of which are incorporated herein by reference in their entireties.
For those ILLRs, the squares, and sums of squares, of the cross-correlations are needed. The computation of those ILLRs has normally been performed by first computing a cross-correlation between user spreading codes and then computing the squares of the cross-correlations (SXC), and finally computing the sums of the squares of the cross-correlations (SSXC) between the user spreading codes. The computation of the cross-correlations can be computationally intensive because each user spreading code must be combined in a bitwise manner with the spreading code of every other user. The squaring operations required to compute the sum of squares of the cross-correlations are also computationally intensive because squaring requires the multiplication of each cross-correlation by itself in a bitwise manner. The computation of the sums of such quantities involves large adders since the inputs to those adders are the outputs of squaring elements. Furthermore, the cross-correlations must be computed between each user and all other users, making the computational complexity grow as the square of the number of users.
Accordingly, there exists a long felt need for a simplified computation of the SXCs and SSXCs of the code cross-correlations for usage in the ILLRs. Furthermore, the SXC and SSXC metrics appear in other signal processing applications.